/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Model;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 *
 * @author sio
 */
public class DAO {
    private static final String urlDep ="http://gaemedecins.appspot.com/Controleur/medParDep/listeDep";
    
     public static List <String> getLesDep() {
        List <String>l=new LinkedList <String>();
        try {
            
            URL myURL = new URL(urlDep);
            Document doc;
            DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
            DocumentBuilder db= dbf.newDocumentBuilder();
            doc= db.parse(myURL.openStream());
            Element racine =  doc.getDocumentElement();
            NodeList listeDep=racine.getElementsByTagName("Departement");
              for(int i=0;i<listeDep.getLength();i++){
                Node departement=listeDep.item(i);
                NodeList lesProprietes=departement.getChildNodes();
                //recherche du nom
                for(int j=0;j<lesProprietes.getLength();j++){
                    if(lesProprietes.item(j).getNodeName().equals("num")){
                        l.add(lesProprietes.item(j).getTextContent().trim());
                        break;
                    }
                }
            }
          
        } catch (MalformedURLException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SAXException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParserConfigurationException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        }
     return l;
}
     public static List <String> getLesMeds(String lenum) {
        List <String>l=new LinkedList <String>();
        try {
           String lien="http://gaemedecins.appspot.com/Controleur/medParDep/listeMed/"+lenum;
            URL myURL = new URL(lien);
            Document doc;
            DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
            DocumentBuilder db= dbf.newDocumentBuilder();
            doc= db.parse(myURL.openStream());
            Element racine =  doc.getDocumentElement();
            NodeList listeDep=racine.getElementsByTagName("Medecin");
              for(int i=0;i<listeDep.getLength();i++){
                Node medecin=listeDep.item(i);
                NodeList lesProprietes=medecin.getChildNodes();
                //recherche du nom
                for(int j=0;j<lesProprietes.getLength();j++){
                    
                        l.add(lesProprietes.item(j).getTextContent().trim());
                       
                    
                }
            }
          
        } catch (MalformedURLException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SAXException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParserConfigurationException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        }
     return l;
}
}
